﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using upcdew_20111_group2b.CapaDominio;
using NHibernate;
using NHibernate.Criterion;

namespace upcdew_20111_group2b.CapaPersistencia
{
    public class Cuota_PagoDAO : BaseDAO<Cuota_Pago, String>
    {
        public ICollection<Cuota_Pago> ListarTodosLosCuota_Pagos()
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Cuota_Pago> resultado = sesion
                        .CreateCriteria(typeof(Cuota_Pago))
                        .List<Cuota_Pago>();
                return resultado;
            }
        }

        public ICollection<Cuota_Pago> ListarPeriodoVivienda(String periodo, Vivienda vivienda)
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Cuota_Pago> resultado = sesion
                        .CreateCriteria(typeof(Cuota_Pago))
                        .Add(Restrictions.Eq("Cuota_Pago.CodVivienda", vivienda.CodVivienda))
                        .Add(Restrictions.Eq("Cuota_Pago.Tex_Periodo", periodo))
                        .List<Cuota_Pago>();
                return resultado;
            }
        }

        //public ICollection<Cuota_Pago> ListarCuotasMorosas()
        //{
        //    DetachedCriteria busqueda = DetachedCriteria.For<Cuota_Pago>();
        //    busqueda.Add(Restrictions.Lt("FechaVencimiento", DateTime.Now));
        //    busqueda.Add(Restrictions.IsNull("FechaPago"));
        //    //ICollection<Cuota_Pago> cuotasImpagas = Cuota_Pago.Listar(busqueda);
        //    return cuotasImpagas;
        //}

        public ICollection<Cuota_Pago> ListarCuota_PagoPorEstado(String estado)
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Cuota_Pago> resultado = sesion
                        .CreateCriteria(typeof(Cuota_Pago))
                        .Add(Restrictions.Like("Tex_Estado", "%" + estado))
                        .List<Cuota_Pago>();
                return resultado;
            }
        }
    }
    
}